package com.ct.application.sysapis.service;


import com.ct.application.commons.vo.StatusRequest;
import com.ct.application.sysapis.model.vo.SysApisVO;
import com.ct.application.sysapis.request.SysApisBatchRequest;
import com.ct.application.sysapis.request.SysApisSaveRequest;
import com.ct.application.sysapis.request.SysApisSearchRequest;
import com.ct.application.sysapis.request.SysApisUpdateRequest;
import com.ct.repository.commons.ITransfterBaseService;

import java.util.List;

/**
 * <p>
 * 权限表 服务类
 * </p>
 *
 * @author Auto Generator
 * @since 2023-08-13
 */
public interface ISysApisService extends ITransfterBaseService {

    /**
     * 分页查询菜单列表
     * @param sysApisSearchRequest
     * @return
     */
    List<SysApisVO> findPageMenu(SysApisSearchRequest sysApisSearchRequest);

    /**
     * API列表--租户使用
     * @return
     */
    List<SysApisVO> findSystemPageMenu(Long roleId);

    /**
     * 根据ID查询菜单信息
     * @param id
     * @return
     */
    SysApisVO selectById(Long id);

    /**
     * 根据ID删除菜单信息
     * @param id
     * @return
     */
    Boolean deleteById(Long id);

    /**
     * 保存菜单
     * @param sysApisSaveRequest
     * @return
     */
    SysApisVO saveSysApis(SysApisSaveRequest sysApisSaveRequest);

    /**
     * 修改菜单信息
     * @param sysApisUpdateRequest
     * @return
     */
    SysApisVO updateSysApis(SysApisUpdateRequest sysApisUpdateRequest);

    /**
     * 修改状态
     * @param statusRequest
     * @return
     */
    Boolean updateStatusSysApis(StatusRequest statusRequest);

    /**
     * 批量恢复
     * @param sysApisBatchRequest
     * @return
     */
    Boolean batchStatus(SysApisBatchRequest sysApisBatchRequest);

    /**
     * 批量禁止
     * @param sysApisBatchRequest
     * @return
     */
    Boolean batchForbiddens(SysApisBatchRequest sysApisBatchRequest);

}
